Maven 编译与JDK版本 您所在的位置:网站首页 pom java版本 Maven 编译与JDK版本

Maven 编译与JDK版本

#Maven 编译与JDK版本| 来源: 网络整理| 查看: 265

Maven命令的运行需要依赖JDK;Maven的编译更是离不开jdk;能否编译成功、编译的结果都和JDK版本息息相关。

场景说明:

我现在系统里面 安装了JDK版本1.6、版本1.7、版本1.8和maven 版本3.1.0。

默认的JDK版本是1.7。

问题点:

1、 系统中maven依赖的是哪个JDK版本?

2、 系统中maven 编译项目的时候使用的是哪个JDK版本?

3、 如果现在系统默认的JDK版本是1.7

a) 现在我有一个特殊项目需要使用JDK版本1.6才能正常编译,需要如何设置。

b) 如果JDK版本1.6系统中没有安装,maven编译的时候会自动去中央仓库下载依赖吗?或者 查看没有版本1.6会使用默认的JDK版本1.7?或者编译失败?

4、 如果默认的jdk版本是1.7,全局指定了maven编译的jdk版本是1.6,特殊项目(special-pro)maven编译指定的JDK版本是1.8。那么项目special-pro使用maven编译的时候会出现什么状况?

a) 编译失败

b) 使用默认的jdk版本1.7

c) 使用全局指定的编译jdk版本1.6

d) 使用项目中指定的编译jdk版本1.8

一 maven工程指定编译的JDK版本。

场景:工作空间内大部分项目使用JDK1.7编译,其中A项目特殊需要使用JDK1.6编译。

解决方法:

首先 ,需要在~/apache-maven-3.1.0/conf/settings.xml 文件中设置变量。

为了提高可维护性,同时方便其他项目的引用,建议系统内安装的各个版本的JDK路径存放在settings.xml文件中。

注:如果不写activeprofile ,这些变量的设置是不生效的。

其次Pom.xml文件需要如下配置:

注意:

导致编译失败的情况

a) 标签javac的路径如果是错误的、无效的会导致编译失败。

b) < source >的版本号和实际设置的JDK版本号对应不上会导致编译失败。

导致版本设置不生效的情况

1、 如果设置了< source >和,不设置 javac的路径,设置不生效,编译则会使用系统默认的JDK,能够编译成功。

2、 想要生效,设置生效,必须设置为true。否则不生效。

3、 只有 和 同时正确设置时,才能生效。

正确设置了和,没有设置和也能使用指定版本正确编译。虽然打印的参数是默认的1.5。

二 全局指定JDK版本。

场景:开发人员小a的本地项目大部分使用JDK1.8,小a想要maven编译的时候默认就使用JDK1.8。这个可以给maven的settings.xml文件设置一个默认的JDK版本。

Settings.xml文件指定了正确的javac路径后,项目编译就会使用指定的JDK版本

三 全局的settings.xml文件里面指定了JDK版本之后,工程的pom.xml文件里面又指定另外一个JDK版本。

这个时候JDK版本优先级是:

工程pom.xml指定的版本 > 全局settings.xml文件指定的版本 >系统运行默认的JDK版本。

注意:

1、如果工程pom.xml文件里面指定的javac路径是错误的,编译失败,不会自动寻找全局的。

2、如果pom.xml只指定了没有指定,编译的时候exectable 是全局指定的JDK。

四 没有指定JDK版本

编译会使用默认的JDK版本,默认是1.5。

如果有问题,欢迎大家指出,我们共同学习。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有